/**
 *
 * @param <E> indica que el nodo es generico.
 * @author Alejo
 */
public class Nodo<E>{
    /**
     * Atributo que representa el valor del nodo.
     */
    protected E data; 
    /**
     * Atributo que representa el valor siguiente al nodo creado.
     */
    protected Nodo<E> nextElement; 

    /**
     * Constructor de nodo, con valor y espacio del siguiente nodo.
     * @param v es el valor del nodo, puede ser un objeto de cualquier clase
     * @param next representa al nodo que se encontrara siguiente al nodo que se esta creando, sera un objeto de la misma clase.
     */
    public Nodo(E v, Nodo<E> next){
    data = v;
    nextElement = next;
    }

    /**
     * Constructor de nodos, sin elementos siguientes a ellos, es decir un nodo final.
     * @param v
     */
    public Nodo(E v){
    this(v,null);
    }

/**
 * Procedimiento que permite obtener al nodo siguiente a un nodo determinado.
 * @return devuelve al siguiente elemento.
 */
public Nodo<E> next(){
    return nextElement;
    }

/**
 * Permite asignar un valor al siguiente elemento, con repecto al nodo creado.
 * @param next asigna un nodo al siguiente nodo con respecto a uno nodo previamente creado.
 */
public void setNext(Nodo<E> next){
    nextElement = next;
    }

/**
 * Procedimiento que permite obtener el valor del nodo, o el objeto que el nodo contiene.
 * @return devuelve el valor u objeto que el nodo contiene.
 */
public E value(){
    return data;
    }

/**
 *Procedimiento que permite asignar un valor u objeto al nodo creado. 
 * @param value Se encia como parametro un valor  u objeto.
 */
public void setValue(E value){
    data = value;
    }

}